home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-10-15 | 5.7 KB | 296 lines | [TEXT/PJMM] |
- UNIT GlobalStuff;
- {***********************************}
- INTERFACE
-
- USES
- MemTypes, QuickDraw, OSIntf, ToolIntf, PackIntf, MacPrint, ObjIntf;
-
- CONST
- {Constants allowed to change}
- kMasters = 12; {# MoreMasters}
- kMaxWindows = 0; {# windows: 0 = unlimited}
- kScreenMargin = 2; {screen margin}
- kTextMargin = 10; {text margin}
- kPrintMargin = 0.5; { margin around printed page, in inch}
- kHBarMargin = 40; {left margin of horiz. scroll bar, usually 0}
- kWOffset = 18; {# pixels to offset windows}
- kWindowKind = 8; {windowkind, # see Window constants}
- kScrollDelay = 15; {# ticks for initial scroll delay}
- kMaxEditItems = 6; {max # of editable text in dialogboxes}
- kCreator = 'CSOS'; {Christian Stratowa Object Shell}
-
- {Document constants}
- kPictDoc = 'PICT'; {Type of first document in typelist}
- kTextDoc = 'TEXT'; {Type of second document in typelist}
- kDocKind = 'TEXT'; {Type of document in File menu}
- kPictHeader = 512; {#bytes for header}
-
- {Window constants}
- kNoGrow = 1;
- kGrow = 2;
- kHScroll = 3;
- kVScroll = 4;
- kScroll = 5;
- kHScrollZoom = 6;
- kVScrollZoom = 7;
- kScrollZoom = 8;
-
- {Scroll bar constants}
- kHBar = 1;
- kVBar = 2;
- kSBarWidth = 15;
-
- {ASCII constants}
- kCR = 13;
- kBS = 8;
- kEnter = 3;
-
- {Apple Menu}
- kAppleID = 1;
- kAbout = 1;
-
- {File Menu}
- kFileID = 2;
- kNew = 1;
- kOpen = 2;
- kClose = 3;
- {----}
- kSave = 5;
- kSaveAs = 6;
- {----}
- kPageSetUp = 8;
- kPrint = 9;
- {----}
- kQuit = 11;
-
- {Edit Menu}
- kEditID = 3;
- kUndo = 1;
- {----}
- kCut = 3;
- kCopy = 4;
- kPaste = 5;
- kClear = 6;
-
- {*begin MyMenus*}
- {New Menu}
- kNewID = 21;
-
- {New Picture Menu}
- kNewPictID = 211;
-
- {New Text Menu}
- kNewTextID = 212;
-
- {Graphics Menu}
- kGraphID = 4;
- kOvals = 1;
- kSpirals = 2;
-
- {Color Menu}
- kColorID = 5;
- kBlack = 1;
- kWhite = 2;
- kRed = 3;
- kGreen = 4;
- kBlue = 5;
- kCyan = 6;
- kMagenta = 7;
- kYellow = 8;
-
- {ForeColor Menu}
- kForeCID = 51;
-
- {BackColor Menu}
- kBackCID = 52;
-
- {Text Menu}
- kTextID = 6;
-
- {Font Menu}
- kFontID = 61;
-
- {Size Menu}
- kSizeID = 62;
-
- {Style Menu}
- kStyleID = 63;
- kPlain = 1;
- kBold = 2;
- kItalic = 3;
- kUnderline = 4;
- kOutline = 5;
- kShadow = 6;
- kCondense = 7;
- kExtend = 8;
-
- {Align Menu}
- kJustID = 64;
- kLeft = 1;
- kCenter = 2;
- kRight = 3;
-
- {PopUp Menus}
- kPopUpID1 = 10;
- kFrameOval = 1;
- kInvertOval = 2;
- kFrameRect = 3;
- kInvertRect = 4;
- {*end MyMenus*}
-
- {Alert constants}
- kAboutID = 1000;
- kErrID = 1001;
- kSizeErrID = 1002;
- kSaveID = 1003;
-
- {Dialog constants}
- kPrintID = 2000;
-
- {Str# constants}
- kStrListID = 1000;
- kOSErrID = 1001;
-
- {low memory constants}
- ROM85 = $28E;
- MBarHeight = $BAA;
-
- VAR
- {Rectangle variables}
- gDeskTopRect: Rect;
- gDragRect: Rect;
- gGrowRect: Rect;
-
- {Window variables}
- gMinWidth: Integer;
- gMinHeight: Integer;
- gWCount: Integer;
- gCloseFlag: BOOLEAN;
-
- {menu variables}
- gMBarHeight: Integer;
-
- {Cursor variables}
- gWatch: Cursor;
- gCross: Cursor;
- gIBeam: Cursor;
-
- {Print variables}
- gPrintHdl: THPrint;
-
- {Event variables}
- gQuitting: BOOLEAN;
- gDone: BOOLEAN;
- gMFEvent: BOOLEAN;
- gNextEvent: BOOLEAN;
- gEvent: EventRecord;
- gSleep: LongInt;
- gMouseRgn: RgnHandle;
- {----------------------------------------}
- PROCEDURE SetEnable (vRsrcID, vItem: Integer;
- vFlag: BOOLEAN);
- PROCEDURE CenterDialogBox (vWidth, vHeight: Integer;
- VAR vPt: Point);
- PROCEDURE CenterMyDialog (vType: OSType;
- vResID: Integer);
- FUNCTION IsAppWindow (vWPtr: WindowPtr): BOOLEAN;
- FUNCTION OSError (vErr: OSErr): BOOLEAN;
-
- {***********************************}
- IMPLEMENTATION
-
- PROCEDURE SetEnable (vRsrcID, vItem: Integer;
- vFlag: BOOLEAN);
- BEGIN
- IF vFlag THEN
- EnableItem(GetMHandle(vRsrcID), vItem)
- ELSE
- DisableItem(GetMHandle(vRsrcID), vItem)
- END; {SetEnable}
-
- {========================================}
- PROCEDURE CenterDialogBox (vWidth, vHeight: Integer;
- VAR vPt: Point);
- BEGIN
- WITH screenBits.bounds DO
- BEGIN
- vPt.h := (right - left - vWidth) DIV 2;
- vPt.v := (bottom - top - vHeight) DIV 3;
- END;
- END; {CenterDialogBox}
-
- {========================================}
- PROCEDURE CenterMyDialog (vType: OSType;
- vResID: Integer);
- VAR
- vHdl: Handle;
- vRect: Rect;
- vWidth, vHeight: Integer;
- vPt: Point;
-
- BEGIN
- vHdl := GetResource(vType, vResID);
- HNoPurge(vHdl);
- IF (vType = 'DLOG') THEN
- vRect := DialogTHndl(vHdl)^^.boundsRect
- ELSE IF (vType = 'ALRT') THEN
- vRect := AlertTHndl(vHdl)^^.boundsRect;
- WITH vRect DO
- BEGIN
- vWidth := (right - left);
- vHeight := (bottom - top);
- CenterDialogBox(vWidth, vHeight, vPt);
- left := vPt.h;
- right := vPt.h + vWidth;
- top := vPt.v;
- bottom := vPt.v + vHeight;
- END;
- IF (vType = 'DLOG') THEN
- DialogTHndl(vHdl)^^.boundsRect := vRect
- ELSE IF (vType = 'ALRT') THEN
- AlertTHndl(vHdl)^^.boundsRect := vRect;
- SetResPurge(TRUE);
- HPurge(vHdl);
- InitCursor;
- END; {CenterMyDialog}
-
- {========================================}
- FUNCTION IsAppWindow (vWPtr: WindowPtr): BOOLEAN;
- BEGIN
- IF vWPtr = NIL THEN
- IsAppWindow := FALSE
- ELSE
- WITH WindowPeek(vWPtr)^ DO
- IsAppWindow := (windowkind = userkind);
- END; {IsAppWindow}
-
- {========================================}
- FUNCTION OSError (vErr: OSErr): BOOLEAN;
- VAR
- vErrNr: Str255;
- vErrMess: Str255;
- vItem: Integer;
-
- BEGIN
- OSError := (vErr <> noErr);
- CASE vErr OF
- DupFNErr:
- GetIndString(vErrMess, kOSErrID, 1);
- OpWrErr:
- GetIndString(vErrMess, kOSErrID, 2);
- IPrAbort:
- Exit(OSError);
- OTHERWISE
- vErrMess := '';
- END;
- NumToString(vErr, vErrNr);
- ParamText(vErrNr, vErrMess, '', '');
- IF vErr <> noErr THEN
- BEGIN
- CenterMyDialog('ALRT', kErrID);
- IF StopAlert(kErrID, NIL) = OK THEN
- END;
- END; {OSError}
-
- END. {unit GlobalStuff}
- {***********************************}